'\" t
'\"! tbl | mmdoc
'\"macro stdmacro
.ds Vn Version 1.2
.ds Dt 24 September 1999
.ds Re Release 1.2.1
.ds Dp Jan 14 18:30
.ds Dm 01 getsepara
.ds Xs 5701 6 getseparablefilter.gl
.TH GLGETSEPARABLEFILTER 3G
.SH NAME
.B "glGetSeparableFilter
\- get separable convolution filter kernel images

.SH C SPECIFICATION
void \f3glGetSeparableFilter\fP(
GLenum \fItarget\fP,
.nf
.ta \w'\f3void \fPglGetSeparableFilter( 'u
	GLenum \fIformat\fP,
	GLenum \fItype\fP,
	GLvoid \fI*row\fP,
	GLvoid \fI*column\fP,
	GLvoid \fI*span\fP )
.fi

.SH PARAMETERS
.TP \w'\f2target\fP\ \ 'u 
\f2target\fP
The separable filter to be retrieved.
Must be
\%\f3GL_SEPARABLE_2D\fP.
.TP
\f2format\fP
Format of the output images.
Must be one of
\%\f3GL_RED\fP,
\%\f3GL_GREEN\fP,
\%\f3GL_BLUE\fP,
\%\f3GL_ALPHA\fP,
\%\f3GL_RGB\fP,
\%\f3GL_BGR\fP
\%\f3GL_RGBA\fP,
\%\f3GL_BGRA\fP,
\%\f3GL_LUMINANCE\fP, or
\%\f3GL_LUMINANCE_ALPHA\fP.
.TP
\f2type\fP
Data type of components in the output images.
Symbolic constants
\%\f3GL_UNSIGNED_BYTE\fP,
\%\f3GL_BYTE\fP,
\%\f3GL_BITMAP\fP,
\%\f3GL_UNSIGNED_SHORT\fP,
\%\f3GL_SHORT\fP,
\%\f3GL_UNSIGNED_INT\fP,
\%\f3GL_INT\fP,
\%\f3GL_FLOAT\fP,
\%\f3GL_UNSIGNED_BYTE_3_3_2\fP,
\%\f3GL_UNSIGNED_BYTE_2_3_3_REV\fP,
\%\f3GL_UNSIGNED_SHORT_5_6_5\fP,
\%\f3GL_UNSIGNED_SHORT_5_6_5_REV\fP,
\%\f3GL_UNSIGNED_SHORT_4_4_4_4\fP,
\%\f3GL_UNSIGNED_SHORT_4_4_4_4_REV\fP,
\%\f3GL_UNSIGNED_SHORT_5_5_5_1\fP,
\%\f3GL_UNSIGNED_SHORT_1_5_5_5_REV\fP,
\%\f3GL_UNSIGNED_INT_8_8_8_8\fP,
\%\f3GL_UNSIGNED_INT_8_8_8_8_REV\fP,
\%\f3GL_UNSIGNED_INT_10_10_10_2\fP, and
\%\f3GL_UNSIGNED_INT_2_10_10_10_REV\fP
are accepted.
.TP
\f2row\fP
Pointer to storage for the row filter image.
.TP
\f2column\fP
Pointer to storage for the column filter image.
.TP
\f2span\fP
Pointer to storage for the span filter image (currently unused).
.SH DESCRIPTION
\%\f3glGetSeparableFilter\fP returns the two one-dimensional filter kernel images for the
current separable 2D convolution filter.
The row image is placed in \f2row\fP and the column image is placed in
\f2column\fP according to the specifications in \f2format\fP and \f2type\fP.
(In the current implementation, \f2span\fP is not affected in any way.)
No pixel transfer operations are performed on the images, but the relevant
pixel storage modes are applied.
.sp
Color components that are present in \f2format\fP but not included in the
internal  of the filters are returned as zero.
The assignments of internal color components to the components of \f2format\fP
are as follows:
.sp

.TS
center;
cb cb
l l.
_
Internal Component	Resulting Component
_
Red	Red
Green	Green
Blue	Blue
Alpha	Alpha
Luminance	Red
Intensity	Red
_
.TE

.SH NOTES
\%\f3glGetSeparableFilter\fP is present only if \%\f3GL_ARB_imaging\fP is returned when \%\f3glGetString\fP
is called with an argument of \%\f3GL_EXTENSIONS\fP.
.P
Non-separable 2D filters must be retrieved with \%\f3glGetConvolutionFilter\fP.
.SH ERRORS
\%\f3GL_INVALID_ENUM\fP is generated if \f2target\fP is not \%\f3GL_SEPARABLE_2D\fP.
.P
\%\f3GL_INVALID_ENUM\fP is generated if \f2format\fP is not one of the allowable
values.
.P
\%\f3GL_INVALID_ENUM\fP is generated if \f2type\fP is not one of the allowable
values.
.P
\%\f3GL_INVALID_OPERATION\fP is generated if \%\f3glGetSeparableFilter\fP is executed
between the execution of \%\f3glBegin\fP and the corresponding
execution of \%\f3glEnd\fP.
.P
\%\f3GL_INVALID_OPERATION\fP is generated if \f2type\fP is one of
\%\f3GL_UNSIGNED_BYTE_3_3_2\fP,
\%\f3GL_UNSIGNED_BYTE_2_3_3_REV\fP,
\%\f3GL_UNSIGNED_SHORT_5_6_5\fP, or
\%\f3GL_UNSIGNED_SHORT_5_6_5_REV\fP
and \f2format\fP is not \%\f3GL_RGB\fP.
.P
\%\f3GL_INVALID_OPERATION\fP is generated if \f2type\fP is one of
\%\f3GL_UNSIGNED_SHORT_4_4_4_4\fP,
\%\f3GL_UNSIGNED_SHORT_4_4_4_4_REV\fP,
\%\f3GL_UNSIGNED_SHORT_5_5_5_1\fP,
\%\f3GL_UNSIGNED_SHORT_1_5_5_5_REV\fP,
\%\f3GL_UNSIGNED_INT_8_8_8_8\fP,
\%\f3GL_UNSIGNED_INT_8_8_8_8_REV\fP,
\%\f3GL_UNSIGNED_INT_10_10_10_2\fP, or
\%\f3GL_UNSIGNED_INT_2_10_10_10_REV\fP
and \f2format\fP is neither \%\f3GL_RGBA\fP nor \%\f3GL_BGRA\fP.
.SH ASSOCIATED GETS
\%\f3glGetConvolutionParameter\fP
.SH SEE ALSO
\%\f3glGetConvolutionFilter(3G)\fP,
\%\f3glConvolutionParameter(3G)\fP,
\%\f3glSeparableFilter2D(3G)\fP
